<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <script>
    // function test() {
    //   console.log(arguments)
    // }
    // test(1, 2, 3, 4)

    // var oDiv = document.getElementsByTagName('div');
    // console.log(oDiv)

    // 上面两种，都表现的像数组，但并没有数组原型上的属性


    // 用对象去模拟数组
    // var obj = {
    //   '0': 1,
    //   '1': 2,
    //   '2': 3,
    //   '3': 4,
    //   '4': 5,
    //   'length': 5
    // }
    // // 给Object原型加上Array的原型上的方法
    // Object.prototype.push = Array.prototype.push;
    // Object.prototype.splice = Array.prototype.splice;
    // obj.push(6)
    // Array.prototype.push = function (elem) {
    //   this[this.length] = elem;
    //   this.length++
    // }
    // console.log(obj)


    // 阿里变态的类数组面试题
    // var obj = {
    //   '2': 3,
    //   '3': 4,
    //   'length': 2,
    //   'splice': Array.prototype.splice,
    //   'push': Array.prototype.push
    // }
    // obj.push(1);
    // obj.push(2);
    // // 因为length是2.所有push会加在，下标2,3上，2,3的值被覆盖，
    // // 因为length变成了4.所以0,1.变成empty
    // console.log(obj)



    // 类数组遍历
    // var obj = {
    //   '0': 1,
    //   '1': 2,
    //   '2': 3,
    //   '3': 4,
    //   '4': 5,
    //   'name': 'zhangsan',
    //   'age': 18,
    //   'length': 5
    // }
    // // 给Object原型加上Array的原型上的方法
    // Object.prototype.push = Array.prototype.push;
    // Object.prototype.splice = Array.prototype.splice;
    // for (let i in obj) {
    //   if (obj.hasOwnProperty(i)) {
    //     console.log(obj[i])
    //   }
    // }


    // 类数组的typeof是object
    function test() {
      console.log(typeof (arguments))
    }
    test(1, 23, 4)



  </script>
</body>

</html>